Skip to content

chore: version packages#57

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

chore: version packages#57
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@openrouter/agent@0.8.0

Minor Changes

  • #56 209499a Thanks @mattapperson! - Add a source discriminant to tool results so untyped MCP tools no longer collapse the type safety of typed tools.

    Previously, mixing an MCP tool (whose output schema is unknown) with fully-typed tools in one callModel({ tools }) array collapsed the entire result union to unknown — one untyped tool poisoned every other tool's result type.

    • ToolExecutionResult (and ToolExecutionResultUnion) now carry source: 'client' | 'mcp'. Narrowing on source === 'client' recovers the precise, schema-derived results for your own tools; MCP results stay isolated as unknown under source === 'mcp'.
    • ToolResultEvent (streaming: getFullResponsesStream, getToolStream) gains the same source field. Breaking: the tool.result event payload now includes source; consumers that constructed or exhaustively matched these events may need to account for it.
    • @openrouter/agent exports a markMcp() helper, an isMcpTool() guard, and the McpBranded type. @openrouter/mcp brands every wrapped tool (including synthetic list_resources/read_resource) so the discrimination is automatic — callers just spread mcp.tools as before.
    • MCP tools continue to execute locally and serialize to the wire as type: 'function'; the brand is purely informational and does not change runtime behavior.

Patch Changes

  • #59 8edae63 Thanks @ayush-or! - Stop the tool-execution loop when a round contains unresolved manual (client-executed) tool calls, instead of sending a follow-up request whose input carries a function_call with no matching function_call_output — a history providers reject with a 400 "No tool output found for function call ...". The response is surfaced so the caller can execute the manual calls and continue, mirroring the existing all-manual behavior.

@openrouter/mcp@0.2.0

Minor Changes

  • #56 209499a Thanks @mattapperson! - Add a source discriminant to tool results so untyped MCP tools no longer collapse the type safety of typed tools.

    Previously, mixing an MCP tool (whose output schema is unknown) with fully-typed tools in one callModel({ tools }) array collapsed the entire result union to unknown — one untyped tool poisoned every other tool's result type.

    • ToolExecutionResult (and ToolExecutionResultUnion) now carry source: 'client' | 'mcp'. Narrowing on source === 'client' recovers the precise, schema-derived results for your own tools; MCP results stay isolated as unknown under source === 'mcp'.
    • ToolResultEvent (streaming: getFullResponsesStream, getToolStream) gains the same source field. Breaking: the tool.result event payload now includes source; consumers that constructed or exhaustively matched these events may need to account for it.
    • @openrouter/agent exports a markMcp() helper, an isMcpTool() guard, and the McpBranded type. @openrouter/mcp brands every wrapped tool (including synthetic list_resources/read_resource) so the discrimination is automatic — callers just spread mcp.tools as before.
    • MCP tools continue to execute locally and serialize to the wire as type: 'function'; the brand is purely informational and does not change runtime behavior.
  • #56 26336b5 Thanks @mattapperson! - Add @openrouter/mcp: expose remote MCP server tools (Streamable HTTP / SSE) as callModel tools.

    • createMCPTools() connects to a non-stdio MCP server, authenticates once (bearer token, custom headers, or a pluggable OAuthClientProvider), and returns a handle whose .tools drop straight into callModel({ tools }). The same auth is reused for tool discovery and every tool call.
    • Faithful runtime JSON-Schema → Zod v4 conversion (convertMcpInputSchema) so the model sees real parameters; tool output schemas are mapped too.
    • Serializable, rehydratable cache (serialize() / rehydrateMCPTools() / pluggable MCPCacheStore + InMemoryMCPCacheStore) that skips re-listing and, opt-in, re-authentication. Credential caching is off by default.
    • MCP feature support: progress notifications surfaced as generator-tool events, tools/list_changed auto-refresh, cancellation via an abort signal, resources exposed as synthetic list_resources/read_resource tools, and elicitation with an optional handler (auto-declines when none is provided).

Patch Changes

perry-the-pr-reviewer[bot]

This comment was marked as outdated.

@github-actions github-actions Bot force-pushed the changeset-release/main branch from 8fef5b9 to f030a4d Compare July 8, 2026 17:00

@perry-the-pr-reviewer perry-the-pr-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ APPROVE unavailable on this installation — the maintainer GitHub App is not
configured with write access on this org, so the verdict below is posted as COMMENT.
Event-level approval (for branch-protection / review requirements) must be added out-of-band.

Perry's Review

Automated Changesets "version packages" PR — deletes 3 consumed changeset files and bumps @openrouter/agent (0.7.2→0.8.0) and @openrouter/mcp (0.1.0→0.2.0) with matching CHANGELOG entries.

Verdict: ✅ LGTM

Details

Risk: 🟢 Low — mechanical version/changelog bump only, no source code touched

CI: all passing ✅ (e2e-tests, lint, structural-gate, typecheck, unit-tests)

Findings: none

Research: n/a — small tier, no deep research pass

Security: no concerns — diff touches only changeset markdown files, CHANGELOG.md entries, and package.json version fields; no secrets, no code paths

Test coverage: n/a — no code changed

Unresolved threads: none

Verification: all 3 deleted changesets correspond exactly to entries appended to both CHANGELOGs; both version bumps are minor bumps matching their "### Minor Changes" sections; @openrouter/mcp's workspace dependency on @openrouter/agent resolves automatically, no other file needed updating.

Scope: first review (full)
Review: tier=small · model=claude-sonnet-latest · score=0.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants